This description relates to techniques for processing asynchronous messages at predefined times in a messaging system.
Enterprise systems using a client/server application arrangement may use a messaging system. Examples of such enterprise systems include a resource management system (RMS), a customer relationship management (CRM) system, a human resource management (HRM) system, a supply chain management (SCM) system, and a financial management (FM) system. In such exemplary enterprise systems, a sender system uses a messaging system to send information, typically in the form of asynchronous messages, to one or more receiver systems. Sender and receiver systems may use proxies to communicate with the messaging system. Proxies are technically part of the messaging system, but are located in the respective sender or receiver system.
Messaging systems may include client applications acting as the sender and/or receiver systems, which alternate between being online and offline. When a receiver system is offline, messages sent to that receiver system will not be received, and an error message will be generated. This can consume large amounts of resources to send both messages and the error messages. In a worst case, all messages must be restarted manually.
Messages may or may not be dependent on the processing state of other messages in the receiver systems. If a message is dependent, a queuing function can be used to guarantee an order of delivery to the intended receiver systems for processing. The messages may also be processed within the messaging system. For example, the messaging system may perform routing based on the content of messages, or perform mapping functions to map the message to the one or more receiver systems. This processing also can consume large amounts of time and other resources of the messaging system.